<?php

namespace app\admin\controller;

use think\Request;
use think\facade\Env;
use app\admin\model\Informations as InformationsModel;
class Informations extends Base
{

    private $informations;
    public $render_con;
    function initialize()
    {
        parent::initialize();
        $this->informations = new InformationsModel();
    }

    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
          $where = null;
          $param = input('get.');
            if( !empty($param['search']) ){
                $where=$param['search'];
            }
            $informations=$this->informations->index($where);
            $this->render_con=$informations;
          $this->assign('informations', $informations);
          $this->assign('render_con', $this->render_con);
          return view();


    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        $result=$this->informations->name('infocate')->select();
        return json($result);
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        $info = $request->post();
        // 处理数据
        $data = [
            'title' => $info['title'],
            'keywords' => $info['keywords'],
            'content' => $info['content_title'],
            'sort' => $info['sort'],
            'time'=>time(),
            'cateid' => $info['cateid'],
        ];
        if($_FILES['pic']['tmp_name']){
            $file=request()->file('pic');
            // 移动到框架应用根目录/public/uploads/ 目录下
            if($file){
                $info = $file->move(Env::get('root_path') . 'public' . DIRECTORY_SEPARATOR . 'static\uploads');
                if($info){
                    $data['cover']='/uploads/'.date('Ymd').'/'.$info->getFilename();
                }else{
                    // 上传失败获取错误信息
                    return $this->error($file->getError());
                }

            }else{
                $data['cover']='';
            }
        }

        $validate = new \app\admin\validate\Informations;
        if($validate->check($data)){
        $result=InformationsModel::create($data);
        if($result){
                    //跳转地址要写成路由形式
            return  $this->redirect('/informations');
        }else{
            $this->error('新增资讯失败!');
                }
        }else{
            return $this->error($validate->getError());
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        $information=$this->informations->read($id);
        return json($information);
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        // 是否是AJAX请求
        if (!request()->isAjax()) {
            $this->error('你四不四迷路了!', '/');
        }
        $result=[];
        $result[0]=$this->informations->name('infocate')->select();
        $result[1]=$this->informations->read($id);

        return json($result);


    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        $info = $request->put();

        // 处理数据
        $data = [
            'title' => $info['title'],
            'keywords' => $info['keywords'],
            'content' => $info['content_title'],
            'sort' => $info['sort'],
            'cateid' => $info['cateid'],

        ];
        //判断是否上传文件
        if($_FILES['pic']['tmp_name']){
            $file=request()->file('pic');
            // 移动到框架应用根目录/public/uploads/ 目录下
            if($file){
                $info = $file->move(Env::get('root_path') . 'public' . DIRECTORY_SEPARATOR . 'static\uploads');
                if($info){
                    $data['cover']='/uploads/'.date('Ymd').'/'.$info->getFilename();
                }else{
                    // 上传失败获取错误信息
                    return $this->error($file->getError());
                }



            }
        }
        //验证
        $validate = new \app\admin\validate\Informations;
        //场景验证
        if($validate->scene('edit')->check($data)){

                $result=$this->informations->where('id', $id)->update($data);
                if($result !== false){
                    //跳转地址要写成路由形式
                    return  $this->redirect('/informations');
                }else{
                    $this->error('更新资讯失败!');
                }
        }else{
            return $this->error($validate->getError());
        }
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $information=InformationsModel::destroy($id);
        if ($information ) {
           return 1;
        } else {
            return 0;
        }

        return json($info);
    }

    /**
     * 资讯排序
     */
    public function sort() {
        if(request()->isPost()){
            $sorts=input('post.');
            foreach($sorts as $k =>$v ){
                InformationsModel::update(['id'=>$k,'sort'=>$v]);
            }
            return  $this->redirect('/informations');

        }

    }

}
